In general, a state machine is comprised of a next state encoder, a set of present state latches, and a present state decoder. In a typical configuration, the inputs of the next state encoder include present state information from the outputs of the present state decoder and one or more other input signals indicative of current conditions in the surrounding system. During one phase of the machine's clock, the encoded outputs of the next state encoder are latched by the present state latches. During the next phase (or the same phase if the latches are sufficiently fast), the outputs of the latches are decoded by the present state decoder and used by the next state encoder, together with selected "current" signals, to encode the next state to be latched by the present state latches.
In conventional state machines, the set of conditions which must exist before the machine moves from one state to another state are defined in the construction of the next state encoder. In general, the "present" state, as reflected by the outputs of the present state decoder, is logically combined by the next state encoder with selected system signals to determine what the "next" state should be. For example, if the relevant system signals are not yet correct, the next state may simply be the same as the present state. Thus, in prior art state machines, a primary input into the next state encoder is the output(s) of the present state decoder.
In the past, when two (or more) state machines were required to cooperate in order to accomplish a given function, the state machines were "linked" by having one or more of the outputs of the present state decoder of one machine forming inputs into the next state encoder of the other state machine, and vice versa. However, in each machine, the primary input of the next state encoder was still the output of the present state decoder of the SAME machine. Thus, although one machine could participate in the determination of the next state of the other machine, the present state of each machine still contributed significantly in the determination of the next state of that machine.